import { translate } from '../../../../../lib/locale/translate/translate.js'; import { INTERNAL_SERVER_ERROR, INVALID_PAYLOAD, OK } from '../../../../../lib/util/httpStatus.js'; import { EvershopRequest } from '../../../../../types/request.js'; import { EvershopResponse } from '../../../../../types/response.js'; export default async ( request: EvershopRequest, response: EvershopResponse, next ) => { const { body } = request; const { email, password } = body; const message = translate('Invalid email or password'); try { await request.loginCustomerWithEmail(email, password, (error) => { if (error) { response.status(INTERNAL_SERVER_ERROR); response.json({ error: { status: INTERNAL_SERVER_ERROR, message } }); } else { response.status(OK); response.$body = { data: { sid: request.sessionID } }; next(); } }); } catch (error) { response.status(INVALID_PAYLOAD); response.json({ error: { status: INVALID_PAYLOAD, message: error.message } }); } };